// 无广告特征定义
var getNoAdFeature = function() {
    return false;
};

function 发财橙子(gameConfig) {
    try {
        var module = "发财橙子";
        Logger.debug(module, "开始执行发财橙子函数 - 游戏：" + (gameConfig ? gameConfig.名称 : "未知"));
        humanClick(664,2178) // 任务
        randomSleep(800, 1000); 
        humanSwipe(636,1700,636,1000,700)
        randomSleep(800, 1000); 
        var renWu = ["看广告赚钱","瓜分千万金币","神秘豪礼"];
        // 通过for循环遍历数组，查找包含文本的控件并点击中心
        if (adDetector && typeof adDetector.detectTextsAd === 'function' && Array.isArray(renWu)) {
            for (var i = 0; i < renWu.length; i++) {
                var searchText = renWu[i];
                if (searchText) {
                    Logger.debug(module, "查找包含'" + searchText + "'的文本控件");
                    var adResult = adDetector.detectTextsAd(searchText, "contains", [0, 720, 550, 1980]);
                    if (adResult && adResult.detected && adResult.control) {
                        var control = adResult.control;
                        // 计算控件中心坐标
                        var centerX = control.x + control.width / 2;
                        var centerY = control.y + control.height / 2;
                        Logger.debug(module, "找到'" + searchText + "'控件，点击中心坐标: [" + centerX + ", " + centerY + "]");
                        // 使用安全检查确保函数存在
                        if (typeof humanClick === 'function') {
                            humanClick(855, centerY+125); // 偏移
                            randomSleep(800, 1200); 
                            humanClick(544,1385); // 领取
                            randomSleep(800, 1200);                                  
                            // 安全调用readyForAction函数
                            if (typeof readyForAction === 'function') {
                                readyForAction();
                            } else {
                                Logger.debug(module, "readyForAction函数未定义，跳过此步骤");
                            }
                            humanClick(544,1345); // 开心收下                               
                            randomSleep(800, 1200);
                        } else {
                            Logger.debug(module, "humanClick和gameClick函数均未定义，无法执行点击操作");
                        }
                    } else {
                        Logger.debug(module, "未找到包含'" + searchText + "'的文本控件");
                    }
                }
            }
        }
        Logger.debug(module, "发财橙子函数执行完成");
        StateManager.set("needNextGame",true);  // 切换下个游戏
        return true;
    } catch (e) {
        Logger.debug(module, "发财橙子执行异常: " + e.message); 
        return false;
    }
}

// 游戏提现函数
function 发财橙子T(gameConfig) {
    try {
        var module = "发财橙子";
        Logger.debug(module, "开始执行发财橙子函数 - 游戏：" + (gameConfig ? gameConfig.名称 : "未知"));
        humanClick(664,2178); // 提现
        randomSleep(800, 1000); 

        var tiXian = [[225,955], [874,747], [554,746], [210,741]]; // 将对象改为坐标数组
        // 循环点击tiXian中的坐标
        for (var i = 0; i < tiXian.length; i++) {
            var coord = tiXian[i];
            if (Array.isArray(coord) && coord.length >= 2) {
                Logger.debug(module, "点击提现坐标: [" + coord[0] + ", " + coord[1] + "]");
                humanClick(coord[0], coord[1]);
                randomSleep(800, 1200);
                
                // 调用OCR识别函数检查余额状态
                var ocrResult = extractTextByOCR(92, 1190, 275, 1239);
                Logger.debug(module, "OCR识别结果: " + JSON.stringify(ocrResult));
                
                // 检查OCR结果是否匹配"余额以满足"
                if (ocrResult && ocrResult.success && ocrResult.text && ocrResult.text.includes("余额以满足")) {
                    Logger.debug(module, "检测到'余额以满足'，跳出循环");
                    humanClick(561, 1928); // 点击指定坐标
                    break;
                }
            }
        }

        Logger.debug(module, "发财橙子提现执行完成");
        return true;
    } catch (e) {
        Logger.debug(module, "发财橙子执行异常: " + e.message); 
        return false;
    }
}